package com.atguigu.jxc.service;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.entity.CustomerReturnList;

import java.util.Map;

/**
 * @description
 */
public interface CustomerReturnListGoodsService {

    /**
     * 保存客户退货单信息
     * @param customerReturnList 客户退货单信息实体
     * @param customerReturnListGoodsStr 客户退货信息JSON字符串
     * @return
     */
    void save(CustomerReturnList customerReturnList, String customerReturnListGoodsStr);

    /**
     * 查询客户退货单
     * @param returnNumber 单号
     * @param customerId 客户ID
     * @param state 付款状态
     * @param sTime 开始时间
     * @param eTime 结束时间
     * @return
     */
    Map<String, Object> list(String returnNumber, Integer customerId, Integer state, String sTime, String eTime);

    /**
     * 查询客户退货单商品信息
     * @param customerReturnListId 客户退货单ID
     * @return
     */
    Map<String, Object> goodsList(Integer customerReturnListId);

    /**
     * 删除客户退货单及商品信息
     * @param customerReturnListId 客户退货单ID
     * @return
     */
    void delete(Integer customerReturnListId);

    /**
     * 修改客户退货单付款状态
     * @param customerReturnListId 客户退货单ID
     * @return
     */
    void updateState(Integer customerReturnListId);

    /**
     * 客户退货商品统计
     * @param sTime 开始时间
     * @param eTime 结束时间
     * @param goodsTypeId 商品类别ID
     * @param codeOrName 编号或商品名称
     * @return
     */
    String count(String sTime, String eTime, Integer goodsTypeId, String codeOrName);
}
